﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TCC_Hotel.Entidades;
using TCC_Hotel.Serviços.BDServices;

namespace TCC_Hotel.Apresentacao.Funcionarios
{
    public partial class DetalharFuncionario : System.Web.UI.Page
    {
         
        /// <summary>
        /// carregamento da página 
        /// </summary>
        protected void Page_Load(object sender, EventArgs e)
        {
            //Recupera o usuario corrente
            string usuario = Request.ServerVariables["AUTH_USER"].ToString();
            LoginService servico_Login = new LoginService();
            //Verifica permissao ao acesso da página
            if (!servico_Login.RecuperarPermissaoCache(usuario).Listar_Funcionarios)
            {
                //Redireciona para a pagina inicial
                Response.Redirect("~/");
            }

            //Verifica permissao ao acesso da página
            if (!servico_Login.RecuperarPermissaoCache(usuario).Cadastrar_Funcionarios)
            {
                //Redireciona para a pagina inicial
                btnEditar.Visible = false;
            }

            if (!IsPostBack)
            {
                //Se nao vier parametro, redireciona o usuario para a tela inicial
                if (Request.Params["cpf"] == null)
                {
                    //Redireciona para a pagina inicial
                    Response.Redirect("~/");
                }

                //Recupera o parametro da URL
                string CPF = Request.Params["cpf"];

                FuncionarioService servico = new FuncionarioService();

                //chama o serviço que busca no banco de dados o funcionario correspondente
                Funcionario funcionario = servico.RecuperarDetalhesFuncionario(CPF);

                if (funcionario != null)
                {
                    txtNome.Text = funcionario.Nome;
                    txtNascimento.Text = Convert.ToString(funcionario.Nascimento).Substring(0, 10);
                    txtTelefone1.Text = funcionario.Contato.Telefone[0];
                    txtTelefone2.Text = funcionario.Contato.Telefone[1];
                    txtCelular1.Text = funcionario.Contato.Celular[0];
                    txtCelular2.Text = funcionario.Contato.Celular[1];
                    txtEmail.Text = funcionario.Contato.Email;
                    txtLogradouro.Text = funcionario.Endereco.Logradouro;
                    txtBairro.Text = funcionario.Endereco.Bairro;
                    txtCEP.Text = funcionario.Endereco.CEP;
                    txtNumero.Text = Convert.ToString(funcionario.Endereco.Numero);
                    txtCidade.Text = funcionario.Endereco.Cidade;
                    txtEstado.Text = funcionario.Endereco.Estado.nome;
                    txtComplemento.Text = funcionario.Endereco.Complemento;
                    txtCPF.Text = funcionario.CPF;
                    txtRG.Text = funcionario.RG;
                    txtCarteiraTrabalho.Text = funcionario.CarteiraTrabalho;
                    txtBanco.Text = funcionario.Banco;
                    txtPIS.Text = funcionario.PIS;
                    txtAgencia.Text = funcionario.Agencia;
                    txtConta.Text = funcionario.Conta_Corrente;
                    txtAdmissao.Text = Convert.ToString(funcionario.Data_Admissao).Substring(0, 10);
                    txtSalario.Text = string.Format("{0:0.00}", funcionario.Salario);
                    txtCargo.Text = funcionario.Cargo;
                    ckbAtivo.Checked = funcionario.Ativo;

                    if (!funcionario.Ativo)
                    {
                        txtDemissao.Text = Convert.ToString(funcionario.Data_Demissao).Substring(0, 10);
                    }
                    else
                    {
                        txtDemissao.Text = "Ativo";
                    }


                }
            }
        }

        /// <summary>
        /// Evento de click do botao voltar 
        /// </summary>
        protected void btnVoltar_Click(object sender, EventArgs e)
        {
          
            //Redireciona para a pagina anterior
            Response.Redirect("~/Apresentacao/Funcionarios/ListarFuncionarios.aspx");

        }

        /// <summary>
        /// Evento de click do botao editar 
        /// </summary>
        protected void btnEditar_Click(object sender, EventArgs e)
        {
            //Redireciona para a pagina de editar correspondente com o CPF como parametro
            Response.Redirect("~/Apresentacao/Funcionarios/EditarFuncionario.aspx?cpf=" + Request.Params["cpf"]);

        }
    }
}